home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / glass / glass.lha / GLASS / dtm / dtm.ds < prev    next >
Text File  |  1991-06-18  |  2KB  |  60 lines

  1. || File: dtm.ds
  2. || Author: M. Seutter
  3.  
  4. orig == (file:symbol, line:inum);
  5.  
  6. || Definitions.
  7. def ::=
  8.     DefAtom atorig:orig atnm:symbol atptyp:[partyp] atctyp:typ | || atom
  9.     DefBasetype baseorig:orig basename:symbol |            || basetype
  10.     DefVal valorig:orig valnm:symbol valtyp:typ valas:val |    || def
  11.     DefCon conorig:orig defcon:val conas:val  |        || defcon = conas
  12.     DefTyp typorig:orig typnm:symbol typas:typ |    || type
  13.     DefConTr corig:orig lhs:val rhs:val nr:inum ;    || defcon = conas
  14.  
  15. || Possible types of parameters types
  16. partyp ::=
  17.     PTInt |
  18.     PTFlo |
  19.     PTStr |
  20.     PTBool ;
  21.  
  22. || Type expressions
  23. typ ::=
  24.     TypBase basenm:symbol |        || basetype
  25.     TypIn ityp:typ |            || ?ityp
  26.     TypOut otyp:typ |            || !otyp
  27.     TypUni uityp:typ uotyp:typ |    || uityp => uotyp
  28.     TypNon nontyp:typ |            || non-directional system
  29.     TypProd ptypes:[typ] |        || Carthesian product.
  30.     TypSym sym:symbol;            || symbolic type
  31.  
  32. || Formal connection patterns.
  33. formcon ::=
  34.     FCList l:[formcon] |        || list of formal connections
  35.     FCSym sym:symbol;            || formal connection symbol
  36.  
  37. || parameters of parameterized atoms
  38. parval ::=
  39.     ParInt i:inum |            || int
  40.     ParFlo f:fnum |            || float
  41.     ParStr s:symbol |            || string
  42.     ParBool b:bool ;            || bool
  43.  
  44. || Value expressions.
  45. || Atoms and apply-s have a source file and line.
  46. val ::=
  47.     VSym symorig:orig sym:symbol |    || Symbol
  48.     VLambda lpar:formcon lval:val |    || Lambda abstraction
  49.     VSigma spar:formcon sval:val |    || Sigma abstraction
  50.     VApply aval:val apar:val |        || Apply (asval aspar)
  51.     VWhere wdefs:[def] wval:val |    || local context
  52.     VList l:[val] |            || List expression
  53.     VAppset aps:[val] |            || appset
  54.     || Atom application
  55.     VAtom atorig:orig atnm:symbol atvpar:[parval] atcpar:val |
  56.     VSyn synlist:[val] ;        || Synonym expression
  57.  
  58. || Variable context
  59. ctx == ( defs:[def] );
  60.